package cn.foolishbird.crow.spring.security.token;

/**
 * jwtToken 解析策略
 *
 * @author foolish bird
 * @email luohongtu@foolishbird.cn
 */
public interface JwtTokenAnalyzeStrategy<P,T> {

    /**
     * 生成jwtToken字符串
     *
     * @param t token内容
     * @return jwtToken字符串
     */
    String createToken(P t);

    /**
     * 校验jwtToken的有效性
     *
     * @param jwtToken jwtToken
     * @return 如果返回true，则是有效的jwtToken
     */
    boolean verifierJwtToken(String jwtToken);

    /**
     * 解析token
     *
     * @param jwtToken jwtToken
     * @return 解析，解密后的jwtToken
     */
    T parseToken(String jwtToken);

}
